<?php
session_start();
include('includes/config.php');
include('includes/fonctions.php');
$messageErrMail = 'Page : connexion.php<br />';
$msgErr = '';

//on récupère les info du form
if (isset($_POST['envoyer'])) {
    //on va tester que l'on a bien les deux infos pseudo et password
    if (isset($_POST['pseudo']) && isset($_POST['mdp']) && !empty($_POST['pseudo']) && !empty($_POST['mdp'])) {
        //on va sécuriser les variables pour la suite
        $pseudo = secure($_POST['pseudo']);
        $password = secure($_POST['mdp']);

        //on récupère l'id, le pseudo et le password en base
        $connection = connexionBdd();
        $select = $connection->prepare('SELECT `membre_id`, `membre_pseudo`, `membre_mdp`, `membre_banni` FROM `membres` WHERE `membre_pseudo` = :pseudo');
        $select->setFetchMode(PDO::FETCH_OBJ);
        $select->bindParam(':pseudo', $pseudo, PDO::PARAM_STR);
        $select->execute();
        $countSelect = $select->rowCount();
        $enregistrement = $select->fetch();
        $select->closeCursor();

        if ($countSelect == 1) {
            //on va tester que le compte est validé, sinon on prend le temps de l'indiquer au client
            if ($enregistrement->membre_banni<1) {
                if (sha1($password) == $enregistrement->membre_mdp) {
                    $_SESSION['membre_id'] = $enregistrement->membre_id;
                    $_SESSION['membre_pseudo'] = $enregistrement->membre_pseudo;
                    $_SESSION['membre_mdp'] = $enregistrement->membre_mdp;

                    if (isset($_POST['cookie']) && $_POST['cookie'] == 'on') {
                        setcookie('membre_id', $enregistrement->membre_id, time() + 365 * 24 * 3600);
                        setcookie('membre_mdp', $enregistrement->membre_mdp, time() + 365 * 24 * 3600);
                    }
                    //redirection vers la page d'accueil d'un compte
                    header('Location: ' . ROOTPATH . '/membres/tableau-bord.php');
                } else {
                    $msgErr = '<div class="warning">Votre mot de passe n\'est pas correct.</div>';
                }
            } else {
                switch ($enregistrement->membre_banni) {
                    case 1:
                        $msgErr = '<div class="error"><p>Votre compte n\'est pas validé.</p>
                                    <p>Veuillez regarder dans vos mails pour cliquer sur le lien de validation.</p></div>';
                        break;
                    case 2:
                        $msgErr = '<div class="error"><p>Votre compte est bloqué par un administrateur.</p>
                                    <p>Si vous ne comprenez pas pourquoi votre compte est bloqué, contactez nous.</p></div>';
                        break;
                     case 3:
                         $msgErr = '<div class="error"><p>Votre compte n\'a pas été validé dans les temps.</p>
                                    <p>Contactez nous si vous souhaitez à présent valider votre compte.</p></div>';
                        break;
                    default:
                        $msgErr = '<div class="error"><p>Il existe un soucis sur votre compte</p>
                                    <p>Notre équipe technique vient d\'en être informé. Une fois le soucis résolu, nous vous contacterons pour plus d\'informations.</p>
                                    <p>Nous vous remercions pour la confiance que vous nous apportez.</p></div>';
                        $messageErrMail .='Attention champs banni incohérent sur le membre : ' . $enregistrement->membre_id . '<br/>';
                        error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
                        break;
                }
                
            }
        } else {
            $msgErr = '<div class="error">Le pseudo "<em>' . $pseudo . '</em>" n\'est pas connu sur ' . $nomSite . '</div>';
            //si on trouve plus d'un pseudo on envoie un mail à l'admin pour le prévenir de se doublon théoriquement imposible
            if ($countSelect > 1) {
                $messageErrMail .='Attention doublon sur un pseudo : ' . $pseudo . '<br/>';
                error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
            }
        }
    } else {
        $msgErr = '<div class="warning">Merci de renseigner votre pseudo ET votre mot de passe.</div>';
    }
}
header('Content-type: text/html; charset=utf-8');

$titre = 'Connexion';
include('includes/haut.php'); //contient le doctype, et head.
?>
<div id="colonne_gauche">
    <?php
    include('includes/colg.php');
    ?>
</div>

<div id="contenu">
    <div id="map">
        <a href="../index.php">Accueil</a> / <a href="connexion.php">Connexion</a>
    </div>

    <h1>Formulaire de connexion</h1>
    <?php
    echo $msgErr;
    ?>      
    <form name="connexion" id="connexion" method="post" action="connexion.php">
        <fieldset><legend>Connexion</legend>
            <label for="pseudo" class="float">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" value="<?php if (isset($_SESSION['connexion_pseudo'])) echo $_SESSION['connexion_pseudo']; ?>"/><br/>
            <label for="mdp" class="float">Passe :</label> <input type="password" name="mdp" id="mdp"/><br/>                
            <input type="checkbox" name="cookie" id="cookie"/> <label for="cookie">Me connecter automatiquement à mon prochain passage.</label><br/>
            <div class="center"><input type="submit" value="Connexion" name="envoyer"/></div>
            <p><a href="inscription.php">Je ne suis pas inscrit.</a> - <a href="oublie-pass.php">J'ai oublié mon mot de passe.</a></p>
        </fieldset>
    </form>

</div>

<?php
include('includes/bas.php');
?>